1. Field of the Invention
The invention relates to verification of a design of an integrated circuit (IC). More specifically, the invention relates to a method and an apparatus to overcome undesirable electrical interaction (called “capacitive crosstalk”) which may arise between wires and/or devices that are physically placed and/or routed adjacent to one another in an IC design.
2. Related Art
Crosstalk is an undesirable electrical interaction between two or more physically adjacent nets due to capacitive cross-coupling. As integrated circuit technologies advance toward smaller geometries, crosstalk effects become increasingly important. The reasons for crosstalk are apparent from reviewing FIGS. 1A and 1B. As circuit geometries become smaller, wire interconnections become closer together and taller, thus increasing the cross-coupling capacitance between nets. At the same time, parasitic capacitance to the substrate (see FIGS. 1A and 1B) becomes less as interconnections become narrower, and cell delays are reduced as transistors become smaller. With circuit geometries at 0.25 micron and above, substrate capacitance is usually the dominant effect. However, with geometries at 0.18 micron and below, the coupling capacitance between nets becomes significant, making crosstalk analysis increasingly important for accurate timing analysis.
For example, consider the signal waveforms on a pair of nets A and B in FIG. 1C that are cross-coupled due to being placed adjacent to one another. Net B (also called “victim” net) should be constant, but the rising edge on net A (also called “aggressor” net) causes a noise bump or glitch 101 on net B. If the bump is sufficiently large and wide, it can cause an incorrect logic value to be propagated to the next gate in the path containing net B. As another example, consider the signal waveforms in FIG. 1D. Due to capacitive cross-coupling, the transitions on aggressor nets A and C can affect the time at which the transition occurs on victim net B. A rising-edge transition on net A at the time T2 shown in FIG. 1D can cause transition 102 which occurs later on net B, possibly contributing to a setup violation for a path containing B. Similarly, a falling-edge transition on net C at time T1 can cause transition 103 which occurs earlier on net B, possibly contributing to a hold violation for a path downstream that receives the signal from net B.
Prior art software tools are available to analyze (when the software is loaded into a computer and executed therein) and report on signal delays due to crosstalk of the type shown in FIGS. 1C and 1D. For example, a tool called “PrimeTime® SI” available from Synopsys, Inc. of Mountain View Calif. can be used to report on delay changes and static noise. Note that “PrimeTime® SI” is an enhancement to a static timing analysis tool called PrimeTime® also available from Synopsys, Inc. A timing report which is generated by crosstalk analysis typically identifies violations in setup time, hold time and/or signal arrival used to generate an Engineering Change Order (ECO). The ECO is typically used by a human (as per act 114 in FIG. 1E) who operates another prior art software tool that performs placement and routing, and an example the tool is called Astro™ also available from Synopsys, Inc.
As noted above, an aggressor net (at top of FIG. 1F) injects a crosstalk glitch onto a victim net through one or more coupling capacitors. The crosstalk glitch impacts the delay of victim net by increasing or decreasing it. The amount of this increase or decrease is called “crosstalk delay”. Such a victim net is typically present in a path(called “critical path”) consisting of timing nodes which represent pins on the path. A timing requirement on such a path may be expressed as the latest (or the earliest) time at which a signal can arrive without making the clock cycle longer (or shorter) than desired. Specifically, the arrival time is signal propagation time from a given starting point. Another timing requirement may be expressed in the form of slack which is the difference between the required time and the arrival time. When the slack of a path is negative, the path has a timing violation.
Correction of crosstalk induced violations using prior art methods known to inventors is difficult and often requires significant manual intervention across several iterations between the crosstalk analysis tool and the place and route tool. For example, the human can make some layout changes in a place and route tool to correct the crosstalk violations, and then send the updated parasitic data (e.g. in Standard Parasitic Exchange Format, abbreviated as SPEF) and IC design data (e.g. in Verilog) to the static timing and noise analysis tool to verify that the problems are corrected, and that there are no new problems. If the static timing and noise analysis tool finds any violations in the modified design then the process is repeated, requiring significant human effort.
For faster repair of crosstalk induced violations, a human can directly perform a “what-if” analysis on certain design changes entirely within a static timing analysis tool. For analyzing these changes, the static timing and noise analysis tool uses a fast “incremental” analysis, taking just a fraction of the time needed for a full analysis, because it updates only a portion of the design which is affected by the changes proposed by the human to correct the crosstalk induced violations. Examples of manually driven changes include increasing the drive strength of victim nets by increasing the sizes of the driving cells using a command “size_cell” or by inserting buffers using another command “insert_buffer.” Another technique is to move apart adjacent victim/aggressor nets with the command “set_coupling_separation.”
However, even with “what-if” analysis, manual work is required, e.g. to come up with the what-if scenarios, to type the just-described commands, and to evaluate results of what-if analysis which are reported by the static timing analysis tool. Sometimes fixing a problem does not solve it, because the problem simply moves to another location, an example of which is illustrated in FIGS. 1F and 1G. Specifically, sizing up a victim driver cell (see bottom net in FIG. 1F) reduces its drive/holding resistance resulting in smaller crosstalk delay. However, the sized up victim driver cell (see FIG. 1G) now behaves as a strong aggressor a receiver cell in for the original aggressor net (the top net in FIG. 1G). This causes a large crosstalk delay for the aggressor net which in turn may create a new timing violation.
Moreover, even if it appears during crosstalk analysis, that sizing up a cell is feasible, it is possible that the place and route tool is unable to size up the same cell, e.g. if there is no physical space available for upsizing in its neighborhood. Also, in certain situations, each of several parallel paths n1-n3 (FIG. 1H) in a tree may have a negative slack. One repair technique is to repair all nets n1-n3. Another alternative technique is to only repair net n0. Both techniques remedy the timing violation and they may both appear equally good at the crosstalk analysis stage, but which one of these two techniques can be used without requiring further iteration is unknown until after invoking the place and route tool with appropriate ECO(s). Hence, these types of problems cause multiple iterations of ECO based on human input and/or trial-and-error which may not necessarily converge, especially in case of large IC designs.